toMap method
Implementation
@override
Map<String, dynamic> toMap({required bool isProto}) {
if (isProto) {
final articlesRetail = <Map<String, dynamic>>[];
final articlesBasket = <Map<String, dynamic>>[];
final articlesUncountable = <Map<String, dynamic>>[];
if (kind == ArticleKind.basket || isBasket) {
articlesBasket.addAll(articles.map((x) => x.toMap()).toList());
} else if (kind == ArticleKind.uncountable) {
articlesUncountable.addAll(articles.map((x) => x.toMap()).toList());
} else {
articlesRetail.addAll(articles.map((x) => x.toMap()).toList());
}
return {
'id': id,
'title': title,
'stockUnit': stockUnit.toString(),
'kind': kind.toString(),
'status': status,
// onPurpose because protobuff do not do generic
'articlesBasket': articlesBasket,
'articlesRetail': articlesRetail,
'articlesUncountable': articlesUncountable,
//
'creationDate': creationDate.toIso8601String(),
'updateDate': updateDate?.toIso8601String(),
'statusUpdateDate': statusUpdateDate?.toIso8601String(),
};
} else {
return {
'id': id,
'title': title,
'stockUnit': stockUnit.toString(),
'kind': kind.toString(),
'status': status,
'articles': articles.map((x) => x.toMap()).toList(),
'creationDate': creationDate.toIso8601String(),
'updateDate': updateDate?.toIso8601String(),
'statusUpdateDate': statusUpdateDate?.toIso8601String(),
};
}
}