Fix Reset All Data crash by using safe cascade deletion

This commit is contained in:
alexandrev-tibco
2026-02-26 10:42:35 +01:00
parent c2dcaf07c7
commit 6db6659330
2 changed files with 6 additions and 5 deletions
+2 -3
View File
@@ -68,11 +68,11 @@ final class SettingsViewModel: ObservableObject {
func resetAllData(context: ModelContext) {
do {
try deleteAll(of: MealSlot.self, in: context)
// WeekPlan cascades MealSlot, so deleting both can corrupt the reset flow.
try deleteAll(of: WeekPlan.self, in: context)
try deleteAll(of: Dish.self, in: context)
try deleteAll(of: Tag.self, in: context)
DefaultDataService.createDefaultTags(context: context)
DefaultDataService.createDefaultTags(context: context, saveImmediately: false)
let settingsDescriptor = FetchDescriptor<AppSettings>()
if let existingSettings = try context.fetch(settingsDescriptor).first {
@@ -98,7 +98,6 @@ final class SettingsViewModel: ObservableObject {
for model in models {
context.delete(model)
}
try context.save()
}
private func showToastMessage(_ message: String) {