package com.diegocayo.organizame.presentation.features.main.events.create

import com.diegocayo.organizame.domain.model.Subject

data class CreateEventState(
    val title: String = "",
    val description: String = "",
    val selectedSubject: Subject? = null,
    val date: Long = System.currentTimeMillis(),
    val startTime: Long = System.currentTimeMillis(),
    val endTime: Long = System.currentTimeMillis() + 3600000,
    val subjects: List<Subject> = emptyList(),
    val isLoading: Boolean = false,
    val error: String? = null,
    val isEventCreated: Boolean = false,
    val showDatePicker: Boolean = false,
    val showStartTimePicker: Boolean = false,
    val showEndTimePicker: Boolean = false,
    val isFormValid: Boolean = false
)

sealed class CreateEventEvent {
    data class OnTitleChange(val title: String) : CreateEventEvent()
    data class OnDescriptionChange(val description: String) : CreateEventEvent()
    data class OnSubjectSelect(val subject: Subject?) : CreateEventEvent()
    data class OnDateSelect(val timestamp: Long) : CreateEventEvent()
    data class OnStartTimeSelect(val timestamp: Long) : CreateEventEvent()
    data class OnEndTimeSelect(val timestamp: Long) : CreateEventEvent()
    data object OnShowDatePicker : CreateEventEvent()
    data object OnShowStartTimePicker : CreateEventEvent()
    data object OnShowEndTimePicker : CreateEventEvent()
    data object OnHideDatePicker : CreateEventEvent()
    data object OnHideStartTimePicker : CreateEventEvent()
    data object OnHideEndTimePicker : CreateEventEvent()
    data object OnCreateEvent : CreateEventEvent()
} 