getMealsForDay method
Retrieves all meals for a specific day, based on the user ID and day ID.
userID: The ID of the user.year: The year of the specific day.month: The month of the specific day.day: The day of the month.
Returns a list of meals for the specific day.
Implementation
Future<List<Meal>> getMealsForDay(int userID, int year, int month, int day) async {
await _databaseWrapper.ensureDBIsInitialized();
final List<Map<String, dynamic>> meals = await _databaseWrapper.database.rawQuery(
'''
SELECT meals.fat_level, meals.sugar_level, meal_types.name
FROM day_meals
INNER JOIN meals ON day_meals.fk_meal_id = meals.ID
INNER JOIN meal_types ON day_meals.fk_meal_type_id = meal_types.ID
WHERE day_meals.fk_user_id = ? AND day_meals.fk_day_id =
(SELECT ID FROM days WHERE year = ? AND month = ? AND day = ?)
''',
[userID, year, month, day],
);
// Use fromLocalDBMap to handle local DB-specific data mapping
return List<Meal>.from(meals.map((meal) => Meal.fromLocalDBMap(meal, year, month, day)));
}