@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();