toMap method

  1. @override
Map<String, dynamic> toMap({
  1. required bool isProto,
})
override

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(),
    };
  }
}