import Foundation

struct WatchTimetableEvent: Codable, Identifiable, Hashable {
    let id: String
    let subject: String
    let startDate: Date
    let endDate: Date
    let room: String
    let lecturer: String
    let note: String?

    var startTimeText: String {
        let f = DateFormatter()
        f.locale = Locale(identifier: "de_DE")
        f.dateFormat = "HH:mm"
        return f.string(from: startDate)
    }

    var endTimeText: String {
        let f = DateFormatter()
        f.locale = Locale(identifier: "de_DE")
        f.dateFormat = "HH:mm"
        return f.string(from: endDate)
    }

    var isToday: Bool { Calendar.current.isDateInToday(startDate) }
    var isLive: Bool { startDate <= Date() && endDate >= Date() }
    var isUpcoming: Bool { endDate >= Date() }

    var roomLabel: String {
        let t = room.trimmingCharacters(in: .whitespacesAndNewlines)
        return t.isEmpty || t == "." ? "Raum folgt" : t
    }

    var dayLabel: String {
        if Calendar.current.isDateInToday(startDate) { return "Heute" }
        if Calendar.current.isDateInTomorrow(startDate) { return "Morgen" }
        let f = DateFormatter()
        f.locale = Locale(identifier: "de_DE")
        f.dateFormat = "EEE, d. MMM"
        return f.string(from: startDate)
    }
}
