getMealsForDay method

Future<List<Meal>> getMealsForDay(
  1. int userID,
  2. int year,
  3. int month,
  4. int day,
)

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)));
}