summaryrefslogtreecommitdiffstats
path: root/Solverv/Models/Season.swift
diff options
context:
space:
mode:
authorivar <i@oiee.no>2026-03-23 16:01:15 +0100
committerivar <i@oiee.no>2026-03-23 16:01:15 +0100
commit2ddeecbc8cee23bb8bcbb32554c3eff05a43e098 (patch)
tree88df525202e77cf8a51d778a842757e8708eb952 /Solverv/Models/Season.swift
parentd3cb239c778f95f39c909f7327d928aae57bccce (diff)
downloadsolverv-2ddeecbc8cee23bb8bcbb32554c3eff05a43e098.tar.xz
solverv-2ddeecbc8cee23bb8bcbb32554c3eff05a43e098.zip
feat: add Season enum with colors and descriptions
Diffstat (limited to 'Solverv/Models/Season.swift')
-rw-r--r--Solverv/Models/Season.swift49
1 files changed, 49 insertions, 0 deletions
diff --git a/Solverv/Models/Season.swift b/Solverv/Models/Season.swift
new file mode 100644
index 0000000..01eaf99
--- /dev/null
+++ b/Solverv/Models/Season.swift
@@ -0,0 +1,49 @@
+import SwiftUI
+
+enum Season: String, Codable {
+ case spring
+ case summer
+ case autumn
+ case winter
+
+ var displayName: String {
+ switch self {
+ case .spring: return "Spring"
+ case .summer: return "Summer"
+ case .autumn: return "Autumn"
+ case .winter: return "Winter"
+ }
+ }
+
+ var description: String {
+ switch self {
+ case .spring: return "Day and night are approximately equal length"
+ case .summer: return "Longest day of the year"
+ case .autumn: return "Day and night are approximately equal length"
+ case .winter: return "Shortest day of the year"
+ }
+ }
+
+ var colorLight: Color {
+ switch self {
+ case .spring: return Color(red: 0.298, green: 0.686, blue: 0.314) // #4CAF50
+ case .summer: return Color(red: 1.0, green: 0.761, blue: 0.039) // #FFC107
+ case .autumn: return Color(red: 1.0, green: 0.596, blue: 0.0) // #FF9800
+ case .winter: return Color(red: 0.129, green: 0.588, blue: 0.953) // #2196F3
+ }
+ }
+
+ var assetName: String {
+ return "Season\(displayName)"
+ }
+
+ static func fromDate(_ date: Date) -> Season {
+ let month = Calendar.current.component(.month, from: date)
+ switch month {
+ case 3, 4, 5: return .spring
+ case 6, 7, 8: return .summer
+ case 9, 10, 11: return .autumn
+ default: return .winter
+ }
+ }
+}