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:
@@ -35,6 +35,10 @@ final class MoodEntryModel {
|
||||
var canEdit: Bool
|
||||
var canDelete: Bool
|
||||
|
||||
// Journal & Media (NEW)
|
||||
var notes: String?
|
||||
var photoID: UUID?
|
||||
|
||||
// Computed properties
|
||||
var mood: Mood {
|
||||
Mood(rawValue: moodValue) ?? .missing
|
||||
@@ -49,7 +53,9 @@ final class MoodEntryModel {
|
||||
mood: Mood,
|
||||
entryType: EntryType,
|
||||
canEdit: Bool = true,
|
||||
canDelete: Bool = true
|
||||
canDelete: Bool = true,
|
||||
notes: String? = nil,
|
||||
photoID: UUID? = nil
|
||||
) {
|
||||
self.forDate = forDate
|
||||
self.moodValue = mood.rawValue
|
||||
@@ -58,6 +64,8 @@ final class MoodEntryModel {
|
||||
self.entryType = entryType.rawValue
|
||||
self.canEdit = canEdit
|
||||
self.canDelete = canDelete
|
||||
self.notes = notes
|
||||
self.photoID = photoID
|
||||
}
|
||||
|
||||
// Convenience initializer for raw values
|
||||
@@ -68,7 +76,9 @@ final class MoodEntryModel {
|
||||
timestamp: Date = Date(),
|
||||
weekDay: Int? = nil,
|
||||
canEdit: Bool = true,
|
||||
canDelete: Bool = true
|
||||
canDelete: Bool = true,
|
||||
notes: String? = nil,
|
||||
photoID: UUID? = nil
|
||||
) {
|
||||
self.forDate = forDate
|
||||
self.moodValue = moodValue
|
||||
@@ -77,5 +87,7 @@ final class MoodEntryModel {
|
||||
self.entryType = entryType
|
||||
self.canEdit = canEdit
|
||||
self.canDelete = canDelete
|
||||
self.notes = notes
|
||||
self.photoID = photoID
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user