Files
workouts/Workouts/Schema/WorkoutsContainer.swift
2025-07-25 17:42:25 -04:00

40 lines
1.3 KiB
Swift

import Foundation
import SwiftData
final class WorkoutsContainer {
static let logger = AppLogger(subsystem: "Workouts", category: "WorkoutsContainer")
static func create(shouldCreateDefaults: inout Bool) -> ModelContainer {
let schema = Schema(versionedSchema: SchemaV1.self)
let container = try! ModelContainer(for: schema, migrationPlan: WorkoutsMigrationPlan.self)
let context = ModelContext(container)
let descriptor = FetchDescriptor<Workout>()
let results = try! context.fetch(descriptor)
if results.isEmpty {
shouldCreateDefaults = true
}
return container
}
@MainActor
static var preview: ModelContainer {
let configuration = ModelConfiguration(isStoredInMemoryOnly: true)
do {
let schema = Schema(SchemaV1.models)
let container = try ModelContainer(for: schema, configurations: configuration)
let context = ModelContext(container)
// Create default data for previews
InitialData.create(modelContext: context)
return container
} catch {
fatalError("Failed to create preview ModelContainer: \(error.localizedDescription)")
}
}
}