getMinMaxSleepTimeLog method

Future<Map<String, int>> getMinMaxSleepTimeLog()

Get min and max sleep time log of current user

Implementation

Future<Map<String, int>> getMinMaxSleepTimeLog() async {
  final dbHelper = MenstrualCycleDbHelper.instance;
  Database? db = await dbHelper.database;
  int minValue = 0;
  int 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 sleepTime = encryption
        .decrypt(queryResponse[i][MenstrualCycleDbHelper.columnSleepTime]);
    List<String> time = sleepTime.split("T");
    List<String> sleepBedTime = time[0].split(":");
    List<String> sleepWakeUpTime = time[1].split(":");

    int sleepBedTimeHrs = int.parse(sleepBedTime[0]);
    int sleepWakeUpTimeHrs = int.parse(sleepWakeUpTime[0]);

    if (sleepBedTimeHrs > sleepWakeUpTimeHrs) {
      sleepWakeUpTimeHrs =
          sleepBedTimeHrs + (23 - sleepBedTimeHrs) + sleepWakeUpTimeHrs;
    }
    // printLogs("sleepWakeUpTimeHrs $sleepWakeUpTimeHrs");

    if (minValue >= sleepBedTimeHrs) {
      minValue = sleepBedTimeHrs;
    }
    if (maxValue <= sleepWakeUpTimeHrs) {
      maxValue = sleepWakeUpTimeHrs;
    }
  });

  //printMenstrualCycleLogs("min_temp $minValue");
  //printMenstrualCycleLogs("max_temp $maxValue");

  return {
    'min_temp': minValue,
    'max_temp': maxValue,
  };
}