package de.effigenix.domain.masterdata.article;

import de.effigenix.domain.masterdata.Unit;

import java.math.BigDecimal;

/**
 * Rohe Eingabe zum Erzeugen eines Article.
 * Wird vom Application Layer aus dem Command gebaut und an Article.create() übergeben.
 * Das Aggregate ist verantwortlich für Validierung und VO-Konstruktion.
 *
 * @param name          Pflicht
 * @param articleNumber Pflicht
 * @param categoryId    Pflicht (UUID-String)
 * @param unit          Pflicht (Enum)
 * @param priceModel    Pflicht (Enum)
 * @param price         Pflicht (Article muss mind. eine SalesUnit haben)
 */
public record ArticleDraft(
        String name,
        String articleNumber,
        String categoryId,
        Unit unit,
        PriceModel priceModel,
        BigDecimal price
) {}
