ValueUpdate constructor

ValueUpdate(
  1. Object? value, {
  2. String? ts,
  3. Map? meta,
  4. String? status,
  5. int count = 1,
  6. num sum = double.nan,
  7. num min = double.nan,
  8. num max = double.nan,
})

Implementation

ValueUpdate(
  this.value, {
  this.ts,
  Map? meta,
  this.status,
  this.count = 1,
  this.sum = double.nan,
  this.min = double.nan,
  this.max = double.nan,
}) {
  ts ??= getTs();

  created = DateTime.now();

  if (meta != null) {
    if (meta['count'] is int) {
      count = meta['count'];
    } else if (value == null) {
      count = 0;
    }

    if (meta['status'] is String) {
      status = meta['status'];
    }

    if (meta['sum'] is num) {
      sum = meta['sum'];
    }

    if (meta['max'] is num) {
      max = meta['max'];
    }

    if (meta['min'] is num) {
      min = meta['min'];
    }
  }

  if (value is num && count == 1) {
    if (sum != sum) sum = value as num;
    if (max != max) max = value as num;
    if (min != min) min = value as num;
  }
}