getPhaseId method
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;
}