From 2ddeecbc8cee23bb8bcbb32554c3eff05a43e098 Mon Sep 17 00:00:00 2001 From: ivar Date: Mon, 23 Mar 2026 16:01:15 +0100 Subject: feat: add Season enum with colors and descriptions --- Solverv/Models/Season.swift | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Solverv/Models/Season.swift (limited to 'Solverv/Models') 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 + } + } +} -- cgit v1.3