converters.dart 762 Bytes
import '../health/health_upload_models.dart';

class HealthDataUploadValueConverter {
  const HealthDataUploadValueConverter();

  HealthDataUploadValue fromJson(Object? json) {
    if (json is int) {
      return HealthDataUploadIntValue(json);
    }
    if (json is double) {
      return HealthDataUploadDoubleValue(json);
    }
    if (json is num) {
      return json is int
          ? HealthDataUploadIntValue(json.toInt())
          : HealthDataUploadDoubleValue(json.toDouble());
    }
    throw FormatException('Invalid HealthDataUploadValue: $json');
  }

  Object toJson(HealthDataUploadValue object) => switch (object) {
        HealthDataUploadIntValue(:final value) => value,
        HealthDataUploadDoubleValue(:final value) => value,
      };
}