Migrate from Core Data to SwiftData
- Replace Core Data with SwiftData for iOS 18+ - Create MoodEntryModel as @Model class replacing MoodEntry entity - Create SharedModelContainer for App Group container sharing - Create DataController with CRUD extensions replacing PersistenceController - Update all views and view models to use MoodEntryModel - Update widget extension to use SwiftData - Remove old Core Data files (Persistence*.swift, .xcdatamodeld) - Add EntryType enum with all entry type cases - Fix widget label truncation with proper spacing and text scaling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -28,8 +28,8 @@ struct MonthTotalTemplate: View, SharingTemplate {
|
||||
@AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .white
|
||||
|
||||
private var moodMetrics = [MoodMetrics]()
|
||||
private var moodEntries = [MoodEntry]()
|
||||
|
||||
private var moodEntries = [MoodEntryModel]()
|
||||
|
||||
let columns = [
|
||||
GridItem(.flexible(minimum: 5, maximum: .infinity), alignment: .center),
|
||||
GridItem(.flexible(minimum: 5, maximum: .infinity), alignment: .center),
|
||||
@@ -39,30 +39,25 @@ struct MonthTotalTemplate: View, SharingTemplate {
|
||||
GridItem(.flexible(minimum: 5, maximum: .infinity), alignment: .center),
|
||||
GridItem(.flexible(minimum: 5, maximum: .infinity), alignment: .center)
|
||||
]
|
||||
|
||||
|
||||
@MainActor
|
||||
init(isPreview: Bool, startDate: Date, endDate: Date, fakeData: Bool) {
|
||||
self.isPreview = isPreview
|
||||
self.startDate = startDate
|
||||
self.endDate = endDate
|
||||
|
||||
var _moodEntries: [MoodEntry]?
|
||||
|
||||
|
||||
var _moodEntries: [MoodEntryModel]?
|
||||
|
||||
if fakeData {
|
||||
_moodEntries = PersistenceController.shared.randomEntries(count: 10)
|
||||
_moodEntries = DataController.shared.randomEntries(count: 10)
|
||||
} else {
|
||||
|
||||
_moodEntries = PersistenceController.shared.getData(startDate: startDate,
|
||||
endDate: endDate,
|
||||
includedDays: [1,2,3,4,5,6,7])
|
||||
|
||||
// _moodEntries = PersistenceController.shared.getData(startDate:Calendar.current.date(byAdding: .day, value: -33, to: Date())!,
|
||||
// endDate: Date(),
|
||||
// includedDays: [1,2,3,4,5,6,7])
|
||||
|
||||
_moodEntries = DataController.shared.getData(startDate: startDate,
|
||||
endDate: endDate,
|
||||
includedDays: [1,2,3,4,5,6,7])
|
||||
}
|
||||
|
||||
moodEntries = _moodEntries ?? [MoodEntry]()
|
||||
|
||||
|
||||
moodEntries = _moodEntries ?? [MoodEntryModel]()
|
||||
|
||||
totalEntryCount = moodEntries.count
|
||||
moodMetrics = Random.createTotalPerc(fromEntries: moodEntries)
|
||||
moodMetrics = moodMetrics.sorted(by: {
|
||||
|
||||
Reference in New Issue
Block a user