<?php
declare(strict_types=1);

namespace Itdatex\EInvoiceCore;

/**
 * Reines Daten-Objekt fuer eine Partei (Verkaeufer oder Kaeufer).
 *
 * Bewusst flach gehalten — nur die Felder, die fuer eine
 * EN-16931-konforme Rechnung erforderlich oder gaengig sind.
 */
final class InvoiceParty
{
    /**
     * @param string[] $addressLines  Strassen-Zeilen (1-3 Elemente sinnvoll)
     */
    public function __construct(
        public readonly string $name,
        public readonly ?string $vatNumber = null,
        public readonly array $addressLines = [],
        public readonly ?string $city = null,
        public readonly ?string $postalCode = null,
        public readonly ?string $countryCode = null,
        public readonly ?string $contactName = null,
        public readonly ?string $contactEmail = null,
        public readonly ?string $contactPhone = null,
        public readonly ?string $electronicAddressScheme = null,
        public readonly ?string $electronicAddressValue = null,
    ) {}
}
