package de.effigenix.domain.masterdata.supplier;

/**
 * Rohe Eingabe zum Erzeugen eines Supplier.
 * Wird vom Application Layer aus dem Command gebaut und an Supplier.create() übergeben.
 * Das Aggregate ist verantwortlich für Validierung und VO-Konstruktion.
 *
 * @param name            Pflicht
 * @param phone           Pflicht (Teil von ContactInfo)
 * @param email           Optional
 * @param contactPerson   Optional
 * @param street          Optional – nur wenn Address insgesamt vollständig
 * @param houseNumber     Optional
 * @param postalCode      Optional
 * @param city            Optional
 * @param country         Optional
 * @param paymentDueDays  Optional
 * @param paymentDescription Optional
 */
public record SupplierDraft(
        String name,
        String phone,
        String email,
        String contactPerson,
        String street,
        String houseNumber,
        String postalCode,
        String city,
        String country,
        Integer paymentDueDays,
        String paymentDescription
) {}
