getGraphDataSorted method
Implementation
List<GraphData> getGraphDataSorted(List<founder_stats_model.CommissionsByDay> commissionsByDays) {
List<String> daysOfWeek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
List<founder_stats_model.CommissionsByDay> filteredDays = commissionsByDays.where((day) {
return daysOfWeek.contains(day.dayName);
}).toList();
filteredDays.sort((a, b) {
int aAdjusted = (a.dayOfWeek == 0) ? 7 : a.dayOfWeek!;
int bAdjusted = (b.dayOfWeek == 0) ? 7 : b.dayOfWeek!;
return aAdjusted.compareTo(bAdjusted);
});
// Determine min and max for scaling
double minSales = filteredDays.map((d) => d.totalNeoMiles ?? 0).reduce((a, b) => a < b ? a : b).toDouble();
double maxSales = filteredDays.map((d) => d.totalNeoMiles ?? 0).reduce((a, b) => a > b ? a : b).toDouble();
double minCommission = filteredDays.map((d) => d.totalCommission ?? 0).reduce((a, b) => a < b ? a : b).toDouble();
double maxCommission = filteredDays.map((d) => d.totalCommission ?? 0).reduce((a, b) => a > b ? a : b).toDouble();
return filteredDays.map((dayData) {
double scaledNeoMiles = 20 + ((dayData.totalNeoMiles!.toDouble() - minSales) * 80 / (maxSales - minSales));
double scaledCommission = 20 + ((dayData.totalCommission!.toDouble() - minCommission) * 80 / (maxCommission - minCommission));
return GraphData(
dayData.dayName!.substring(0,3) ?? "Unknown",
scaledNeoMiles,
scaledCommission,
);
}).toList();
}