summaryrefslogtreecommitdiffstats
path: root/Solverv
diff options
context:
space:
mode:
Diffstat (limited to 'Solverv')
-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
+ }
+ }
+}