Spaces:
Paused
Paused
| // src/database.js | |
| const mongoose = require('mongoose'); | |
| const logger = require('./logger'); | |
| const config = require('./config'); | |
| if (!config.mongodbUri) { | |
| logger.fatal("FATAL: MONGODB_URI not found in environment variables/config. Check .env file."); | |
| process.exit(1); | |
| } | |
| // Schema remains the same | |
| const userSchema = new mongoose.Schema({ | |
| remoteJid: { type: String, required: true, unique: true }, | |
| name: { type: String }, | |
| regNo: { type: String }, | |
| semester: { type: String }, | |
| isRegistered: { type: Boolean, default: false }, | |
| registrationTimestamp: { type: Date } | |
| }); | |
| // Comment on Data Size | |
| // Data per user is small (~<1KB). 2000 users (~2MB) is well within Atlas free tier limits. | |
| const User = mongoose.model('User', userSchema); | |
| async function connectDB() { | |
| try { | |
| await mongoose.connect(config.mongodbUri); | |
| logger.info('Successfully connected to MongoDB!'); | |
| } catch (error) { | |
| logger.fatal({ err: error }, 'Error connecting to MongoDB'); | |
| process.exit(1); | |
| } | |
| } | |
| // Export model directly for handlers to import | |
| module.exports = { connectDB, User }; | |