getPhaseId method

Future<int> getPhaseId()

Implementation

Future<int> getPhaseId() async {
  final dbHelper = MenstrualCycleDbHelper.instance;
  final now = DateTime.now();
  final logDate = defaultDateFormat.format(now);

  final lastPeriodDate = await dbHelper.getLastPeriodDate();
  if (lastPeriodDate.isEmpty) {
    return 5; // Default phase if no data is available
  }
  final lastPeriodDay =
      await dbHelper.getLastPeriodDateFromInputDate(logDate);
  if (lastPeriodDay.isEmpty) return 5;

  final difference = DateTime.parse(logDate)
      .difference(DateTime.parse(lastPeriodDay))
      .inDays;
  final intCycleDay = difference < 0 ? 0 : difference + 1;

  if (intCycleDay > 0 && intCycleDay < 6) return 1;
  if (intCycleDay < 13) return 2;
  if (intCycleDay < 16) return 3;
  if (intCycleDay < 30) return 4;
  return 5;
}