Files
Holzleitner-Lieferservice-App/lib/domain/entity/article.dart
Dennis Nemec a9bf8ecdd1 Final commit.
2026-06-01 17:12:28 +02:00

46 lines
1.4 KiB
Dart

/// Stammdatensatz für einen Artikel (Ware).
///
/// Der Domain-Artikel kennt — anders als das alte ERPframe-Modell — keine
/// Eltern-Kind-Beziehungen mehr. Stücklisten (BOM/Komponenten) werden im
/// neuen Backend als gleichrangige `DeliveryItem`s mit gesetztem
/// `komponentenArtikelNr` modelliert; der Treiber scannt einfach jedes Item
/// separat. Hier deshalb absichtlich kein `components`/`parent`-Feld.
class Article {
const Article({
required this.id,
required this.articleNumber,
required this.name,
required this.scannable,
this.defaultWarehouseId,
});
final String id;
final String articleNumber;
final String name;
/// Nicht-scanbar = wird nicht über den Scanner durchgereicht (z. B.
/// Dienstleistung, Versandkosten). In der Loading-Phase ausgeblendet.
final bool scannable;
/// Lager-Default für diesen Artikel; das tatsächlich relevante Lager pro
/// Lieferung steht aber am `DeliveryItem.warehouseId`. Wird nur als
/// UX-Hinweis verwendet.
final String? defaultWarehouseId;
Article copyWith({
String? id,
String? articleNumber,
String? name,
bool? scannable,
String? defaultWarehouseId,
}) {
return Article(
id: id ?? this.id,
articleNumber: articleNumber ?? this.articleNumber,
name: name ?? this.name,
scannable: scannable ?? this.scannable,
defaultWarehouseId: defaultWarehouseId ?? this.defaultWarehouseId,
);
}
}