Prashikshak / API /src /util /eventDayStatus.util.ts
Abhisingh-18's picture
Initial commit: Prashikshak - disaster management training platform
9a92a42
Raw
History Blame Contribute Delete
1.3 kB
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';
};