Fix Reset All Data crash by using safe cascade deletion
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user