feat: add meal planning feature with API integration

- Introduced MealPlanApiPaths for handling meal plan related API endpoints.
- Added MealPlanScreen for displaying and managing meal plans.
- Implemented MealPlanRepository for fetching and updating meal plan data.
- Created data models: MealPlanEntry, MealPlanRecipe, InventoryCompareItem, ShoppingItem, and MealPlanDashboard.
- Integrated meal plan functionality into the app router and UI.
- Updated localization files for meal plan related strings in English and Swedish.
- Added state management for meal plan using Riverpod.
This commit is contained in:
Nils-Johan Gynther
2026-04-22 19:51:33 +02:00
parent b8627d0b7f
commit e495a4b38e
14 changed files with 1098 additions and 0 deletions
+61
View File
@@ -2,6 +2,67 @@
"@@locale": "sv",
"appTitle": "Recipe App",
"retryAction": "Försök igen",
"mealPlanTitle": "Matsedel",
"mealPlanLoading": "Laddar matsedel...",
"mealPlanWeekPrevious": "Förra veckan",
"mealPlanWeekNext": "Nästa vecka",
"mealPlanWeekCurrent": "Denna vecka",
"mealPlanDayNoRecipe": "Inget planerat",
"mealPlanSelectRecipe": "Välj recept",
"mealPlanViewRecipe": "Visa recept",
"mealPlanServingsLabel": "Portioner",
"mealPlanResetServings": "Återställ",
"mealPlanSaving": "Sparar...",
"mealPlanPlannedRecipes": "{count, plural, one {# recept planerat} other {# recept planerade}}",
"@mealPlanPlannedRecipes": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mealPlanShoppingTitle": "Inköpslista",
"mealPlanPickRecipeHint": "Välj recept ovan för att se en samlad ingredienslista.",
"mealPlanNoShoppingItems": "Inga ingredienser att visa för den här veckan.",
"mealPlanNoRecipesTitle": "Det finns inga recept att planera ännu.",
"mealPlanNoRecipesDescription": "Skapa minst ett recept först, så kan du lägga det i matsedeln.",
"mealPlanMissingCount": "{count, plural, one {# saknas} other {# saknas}}",
"@mealPlanMissingCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mealPlanPartialCount": "{count, plural, one {# delvis hemma} other {# delvis hemma}}",
"@mealPlanPartialCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mealPlanEnoughCount": "{count, plural, one {# hemma} other {# hemma}}",
"@mealPlanEnoughCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mealPlanPantryCount": "{count, plural, one {# baslager} other {# baslager}}",
"@mealPlanPantryCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mealPlanAllAtHome": "Du har allt hemma.",
"mealPlanStatusMissing": "Saknas",
"mealPlanStatusPartial": "Delvis hemma",
"mealPlanStatusEnough": "Finns hemma",
"mealPlanStatusPantry": "Baslager",
"loginTitle": "Logga in",
"usernameLabel": "Användarnamn",
"usernameRequired": "Ange ditt användarnamn.",