summaryrefslogtreecommitdiffstats
path: root/Shared/Models/Season.swift
blob: ed9b7df62e68bd0dfe59fa5fda0b75efacf90d33 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import SwiftUI

enum Season: String, Codable {
    case spring
    case summer
    case autumn
    case winter

    var eventName: String {
        switch self {
        case .spring: return "Vårjevndøgn"
        case .summer: return "Sommersolverv"
        case .autumn: return "Høstjevndøgn"
        case .winter: return "Vintersolverv"
        }
    }

    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)
        case .summer: return Color(red: 1.0, green: 0.761, blue: 0.039)
        case .autumn: return Color(red: 1.0, green: 0.596, blue: 0.0)
        case .winter: return Color(red: 0.129, green: 0.588, blue: 0.953)
        }
    }

    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
        }
    }
}