| | import mongoose from 'mongoose'; |
| |
|
| | const userSchema = new mongoose.Schema({ |
| | googleId: { |
| | type: String, |
| | required: true, |
| | unique: true, |
| | }, |
| | email: { |
| | type: String, |
| | required: true, |
| | unique: true, |
| | }, |
| | displayName: String, |
| | firstName: String, |
| | lastName: String, |
| | username: { |
| | type: String, |
| | unique: true, |
| | sparse: true, |
| | trim: true, |
| | minlength: 3, |
| | maxlength: 30, |
| | }, |
| | role: { type: String, default: 'user' }, |
| | |
| | |
| | profile: { |
| | isComplete: { type: Boolean, default: false }, |
| | college: { type: String, default: '' }, |
| | city: { type: String, default: '' }, |
| | gender: { type: String, enum: ['Male', 'Female', 'Non-binary', ''], default: '' }, |
| | relationshipStatus: { type: String, default: '' }, |
| | photos: [String], |
| | bio: { type: String, maxlength: 100 }, |
| | socials: { |
| | instagram: { type: String, default: '' }, |
| | snapchat: { type: String, default: '' }, |
| | whatsapp: { type: String, default: '' } |
| | } |
| | }, |
| |
|
| | |
| | karma: { |
| | type: Number, |
| | default: 60, |
| | min: 0, |
| | max: 100 |
| | }, |
| | |
| | flags: { |
| | nsfwCount: { type: Number, default: 0 }, |
| | reportsReceived: { type: Number, default: 0 }, |
| | isBanned: { type: Boolean, default: false } |
| | }, |
| |
|
| | |
| | friends: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }], |
| | friendRequests: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] |
| |
|
| | }, { timestamps: true }); |
| |
|
| | export default mongoose.model('User', userSchema); |