User: Task: "Create Manage Time Slots"
    Description: "Generate a Node.js Manage Time Slots Api with given dependenceis"
    Requirements:
    - Database: mongoose
    - Authentication: None specified
    - Output needed: Return only the function code as specified in dependencies
    - Dependencies: Create a Api to manage time slots for a specific date and service. Export: exports.manageTimeSlots = async () => {...}, 
Accept parameters: date, serviceId, availableSlots (array of time slots)., 
Validate required fields: Ensure date, serviceId, and availableSlots are provided., 
Use the TimeSlot model to create or update available time slots for the service on the specified date., 
Ensure that time slots do not overlap with other existing bookings for the service., 
Allow the admin to define time intervals (e.g., 30 mins, 1 hour)., 
Respond to user with a success message indicating available time slots., 
Handle errors like invalid date, overlapping time slots, or database issues.
    - Previous Code 
const mongoose = require('mongoose');
// Importing the Booking model (assuming it has been defined elsewhere in your code)
const Booking = require('./models/Booking');

// Function to check availability of a room or service
exports.checkAvailability = async (checkInDate, checkOutDate, roomId) => {
    // Validate required fields
    if (!checkInDate || !checkOutDate || !roomId) {
        throw new Error('Missing required parameters: checkInDate, checkOutDate, and roomId are required.');
    }

    try {
        // Convert dates to appropriate format if needed (for example, using new Date())
        const checkIn = new Date(checkInDate);
        const checkOut = new Date(checkOutDate);

        // Query the Booking model to check for existing bookings during the specified date range
        const existingBooking = await Booking.findOne({
            roomId: roomId,
            $or: [
                { checkInDate: { $lt: checkOut }, checkOutDate: { $gt: checkIn } },
                { checkInDate: { $eq: checkIn }, checkOutDate: { $eq: checkOut } }
            ]
        });

        // If a booking already exists in the date range, indicate double booking
        if (existingBooking) {
            return {
                success: false,
                message: 'The room or service is unavailable for the selected date range due to a double booking.'
            };
        }

        // If no booking exists, indicate that the room or service is available
        return {
            success: true,
            message: 'The room or service is available for booking.'
        };
    } catch (error) {
        // Handle errors such as database connection errors
        console.error('Error checking availability:', error);
        throw new Error(`Error checking availability: ${error.message}`);
    }
};

    - Supporting data 
    - Updating File undefined
    
    Please generate the code for this task, following the instructions and including comments for clarity.
    While creating router for specifict file your have to read supporing file data and create for that 

    **Output Formats**: 

Return dependencies like this `const bcrypt = require('bcrypt');`  in this formate
```dependencies
const bcrypt = require('bcrypt');
```

Ensure this format is consistently followed in responses.
    
User: 


    
Assistant: