@pikmeup/database-service
Version: 
Shared database service for PikMeUp using Typegoose with MongoDB
107 lines (106 loc) • 3.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("./index");
const User_1 = require("./models/User");
const Trip_1 = require("./models/Trip");
async function main() {
    try {
        // Connect to MongoDB (replace with your MongoDB URI)
        await (0, index_1.connectToDatabase)('mongodb://localhost:27017/pikmeup');
        // Create test users
        const passengerUser = await index_1.models.User.create({
            name: 'Test Passenger',
            email: 'passenger@example.com',
            phoneNumber: '1234567890',
            firebaseId: 'passenger_firebase_id_123',
            password: 'passenger123',
            role: User_1.Role.PASSENGER,
            isActive: true
        });
        const driverUser = await index_1.models.User.create({
            name: 'Test Driver',
            email: 'driver@example.com',
            phoneNumber: '9876543210',
            firebaseId: 'driver_firebase_id_456',
            password: 'driver123',
            role: User_1.Role.DRIVER,
            isActive: true
        });
        const supervisorUser = await index_1.models.User.create({
            name: 'Test Supervisor',
            email: 'supervisor@example.com',
            phoneNumber: '5555555555',
            firebaseId: 'supervisor_firebase_id_789',
            password: 'supervisor123',
            role: User_1.Role.SUPERVISOR,
            isActive: true
        });
        console.log('Created users:', { passengerUser, driverUser, supervisorUser });
        // Create passenger
        const passenger = await index_1.models.Passenger.create({
            userId: passengerUser._id
        });
        console.log('Created passenger:', passenger);
        // Create driver
        const driver = await index_1.models.Driver.create({
            userId: driverUser._id
        });
        console.log('Created driver:', driver);
        // Create supervisor
        const supervisor = await index_1.models.Supervisor.create({
            userId: supervisorUser._id
        });
        console.log('Created supervisor:', supervisor);
        // Create cab
        const cab = await index_1.models.Cab.create({
            number: 'KA01AB12345',
            capacity: 4,
            driver: driver._id
        });
        console.log('Created cab:', cab);
        // Create route
        const route = await index_1.models.Route.create({
            name: 'Morning Route 1',
            supervisor: supervisor._id,
            cabs: [cab._id]
        });
        console.log('Created route:', route);
        // Create stops
        const stops = await Promise.all([
            index_1.models.Stop.create({
                address: '123 Main Street',
                order: 1,
                route: route._id
            }),
            index_1.models.Stop.create({
                address: '456 Park Avenue',
                order: 2,
                route: route._id
            }),
            index_1.models.Stop.create({
                address: '789 Business Center',
                order: 3,
                route: route._id
            })
        ]);
        console.log('Created stops:', stops);
        // Update route with stops
        route.stops = stops.map(stop => stop._id);
        await route.save();
        // Create trip
        const trip = await index_1.models.Trip.create({
            date: new Date(),
            type: Trip_1.TripType.TO_OFFICE,
            cab: cab._id,
            driver: driver._id
        });
        console.log('Created trip:', trip);
        // Disconnect from database
        await (0, index_1.disconnectFromDatabase)();
    }
    catch (error) {
        console.error('Error:', error);
        process.exit(1);
    }
}
main();