Add premium features and reorganize Settings tab
Premium Features: - Journal notes and photo attachments for mood entries - Data export (CSV and PDF reports) - Privacy lock with Face ID/Touch ID - Apple Health integration for mood correlation - 4 new personality packs (Motivational Coach, Zen Master, Best Friend, Data Analyst) Settings Tab Reorganization: - Combined Customize and Settings into single tab with segmented control - Added upgrade banner with trial countdown above segment - "Why Upgrade?" sheet showing all premium benefits - Subscribe button opens improved StoreKit 2 subscription view UI Improvements: - Enhanced subscription store with feature highlights - Entry detail view for viewing/editing notes and photos - Removed duplicate subscription banners from tab content 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,4 +21,34 @@ extension DataController {
|
||||
EventLogger.log(event: "update_entry")
|
||||
return true
|
||||
}
|
||||
|
||||
// MARK: - Notes
|
||||
|
||||
@discardableResult
|
||||
func updateNotes(forDate date: Date, notes: String?) -> Bool {
|
||||
guard let entry = getEntry(byDate: date) else {
|
||||
return false
|
||||
}
|
||||
|
||||
entry.notes = notes
|
||||
saveAndRunDataListeners()
|
||||
|
||||
EventLogger.log(event: "update_notes")
|
||||
return true
|
||||
}
|
||||
|
||||
// MARK: - Photo
|
||||
|
||||
@discardableResult
|
||||
func updatePhoto(forDate date: Date, photoID: UUID?) -> Bool {
|
||||
guard let entry = getEntry(byDate: date) else {
|
||||
return false
|
||||
}
|
||||
|
||||
entry.photoID = photoID
|
||||
saveAndRunDataListeners()
|
||||
|
||||
EventLogger.log(event: "update_photo")
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user