HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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;
};