diff options
| author | ivar <i@oiee.no> | 2026-03-23 16:01:15 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2026-03-23 16:01:15 +0100 |
| commit | 2ddeecbc8cee23bb8bcbb32554c3eff05a43e098 (patch) | |
| tree | 88df525202e77cf8a51d778a842757e8708eb952 /Solverv/Models/Season.swift | |
| parent | d3cb239c778f95f39c909f7327d928aae57bccce (diff) | |
| download | solverv-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.swift | 49 |
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 + } + } +} |
