package com.applemand.zmanim.feature.calendar

import com.applemand.zmanim.core.jewcal.HebrewDate
import com.applemand.zmanim.core.jewcal.Holiday
import com.applemand.zmanim.core.jewcal.OmerCount
import com.applemand.zmanim.core.jewcal.Parasha
import com.applemand.zmanim.core.jewcal.DafYomiRef
import com.applemand.zmanim.core.zmanim.ZmanimSnapshot
import kotlinx.datetime.LocalDate

enum class CalendarView { DAY, WEEK, MONTH, YEAR }

data class DaySummary(
    val date: LocalDate,
    val hebrewDate: HebrewDate,
    val zmanim: ZmanimSnapshot?,
    val holidays: List<Holiday>,
    val parasha: Parasha?,
    val daf: DafYomiRef?,
    val omer: OmerCount?,
)

data class CalendarUiState(
    val view: CalendarView = CalendarView.MONTH,
    val currentDate: LocalDate,
    val today: LocalDate,
    val daySummaries: Map<LocalDate, DaySummary> = emptyMap(),
    val loading: Boolean = false,
    val errorMessage: String? = null,
)
