getMinMaxDrinkWater method

Future<Map<String, double>> getMinMaxDrinkWater({
  1. WaterUnits? waterUnits = WaterUnits.ml,
})

Get min and max drink water of current user

Implementation

Future<Map<String, double>> getMinMaxDrinkWater(
    {WaterUnits? waterUnits = WaterUnits.ml}) async {
  final dbHelper = MenstrualCycleDbHelper.instance;
  Database? db = await dbHelper.database;
  double minValue = 0;
  double maxValue = 0;
  final mInstance = MenstrualCycleWidget.instance!;
  String customerId = mInstance.getCustomerId();

  final List<Map<String, dynamic>> queryResponse = await db!.rawQuery(
      "Select * from ${MenstrualCycleDbHelper.tableDailyUserSymptomsLogsData} WHERE ${MenstrualCycleDbHelper.columnCustomerId}='$customerId'");
  final encryption = Encryption.instance;
  List.generate(queryResponse.length, (i) {
    String waterUnit = encryption
        .decrypt(queryResponse[i][MenstrualCycleDbHelper.columnWaterUnit]);
    double drinkWaterValue = double.parse(encryption
        .decrypt(queryResponse[i][MenstrualCycleDbHelper.columnWater]));
    double drinkWater = 0.0;
    if (drinkWaterValue > 0) {
      if (waterUnit == waterUnits.toString()) {
        drinkWater = drinkWaterValue;
      } else {
        if (waterUnits == WaterUnits.liters) {
          drinkWater = millilitersToLiters(drinkWaterValue);
        } else if (waterUnits == WaterUnits.cups) {
          drinkWater = millilitersToUSCups(drinkWaterValue);
        } else if (waterUnits == WaterUnits.flOz) {
          drinkWater = millilitersToUSFluidOunces(drinkWaterValue);
        } else if (waterUnits == WaterUnits.imperialGallons) {
          drinkWater = millilitersToImperialGallons(drinkWaterValue);
        } else if (waterUnits == WaterUnits.usGallon) {
          drinkWater = millilitersToUSGallons(drinkWaterValue);
        }
      }
    }
    if (minValue == 0) {
      minValue = drinkWater;
    }
    if (drinkWater > 0) {
      if (minValue >= drinkWater) {
        minValue = drinkWater;
      }
      if (maxValue <= drinkWater) {
        maxValue = drinkWater;
      }
    }
  });

  return {
    'min_value': minValue,
    'max_value': maxValue,
  };
}