import { IEventDay } from '../model/eventDay.model'; /** * Check if an event day is currently live */ export const isEventDayLive = (eventDay: IEventDay): boolean => { const now = new Date(); // Check if event has started if (!eventDay.hasStarted) { return false; } // Check if event is completed if (eventDay.isCompleted) { return false; } // Check if current time is within the time slot return now >= eventDay.startTime && now <= eventDay.endTime; }; /** * Determine calendar status color for an event day * @returns 'green' | 'red' | 'blue' */ export const getEventDayStatus = (eventDay: IEventDay): 'green' | 'red' | 'blue' => { const now = new Date(); const eventDate = new Date(eventDay.endTime); // Green: Completed with photos and attendance if (eventDay.isCompleted && eventDay.photos.length > 0 && eventDay.attendance.length > 0) { return 'green'; } // Red: Event day has passed but not completed properly if (eventDate < now) { // Event day has passed if (!eventDay.hasStarted || eventDay.photos.length === 0 || eventDay.attendance.length === 0) { return 'red'; } } // Blue: Future dates or planned but not yet conducted return 'blue'; };