File: //home/arjun/projects/good-life-be/api/Dashboard/service.js
import User from '../../models/User.js';
import Events from '../../models/Event.js';
export const adminDashboardData = async () => {
const totalUser = await User.count({
where: { role: 'user', is_deleted: false },
});
return { totalUser };
};
export const userDashboardData = async (user) => {
const totalEvents = await Events.findAll({
where: { status: 'active' ,user_id : user},
raw: true,
});
const reshapedData = {};
for (const event of totalEvents) {
const { date, ...eventDetails } = event;
const eventDate = new Date(date);
const day = eventDate.toLocaleDateString('en-US', { weekday: 'long' });
// If the date doesn't exist in reshapedData, initialize it
if (!reshapedData[date]) {
reshapedData[date] = {
day: day,
events: [],
};
}
// Push the event details into the events array for the specific date
reshapedData[date].events.push({
event_details: {
event_title: eventDetails.event_title,
event_description: eventDetails.event_description,
event_name: eventDetails.event_name,
start_time: eventDetails.start_time,
end_time: eventDetails.end_time,
recurring: eventDetails.recurring,
recurrence_pattern: eventDetails.recurrence_pattern,
category: eventDetails.category,
subCategory: eventDetails.subCategory || '',
ai_activity: eventDetails.ai_activity,
ai_suggested_activity: eventDetails.ai_suggested_activity || '',
buffer_time: eventDetails.bufferTime,
},
conflict: false,
conflict_reason: eventDetails.conflict_reason || '',
});
}
return reshapedData;
};