overleaf/services/web/app/src/models/DeletedUser.js

40 lines
1.2 KiB
JavaScript
Raw Normal View History

const mongoose = require('mongoose')
const Settings = require('settings-sharelatex')
const { UserSchema } = require('./User')
const { Schema } = mongoose
const { ObjectId } = Schema
const DeleterDataSchema = new Schema({
deleterId: { type: ObjectId, ref: 'User' },
deleterIpAddress: { type: String },
deletedAt: { type: Date },
deletedUserId: { type: ObjectId },
deletedUserLastLoggedIn: { type: Date },
deletedUserSignUpDate: { type: Date },
deletedUserLoginCount: { type: Number },
deletedUserReferralId: { type: String },
deletedUserReferredUsers: [{ type: ObjectId, ref: 'User' }],
deletedUserReferredUserCount: { type: Number },
deletedUserOverleafId: { type: Number }
})
const DeletedUserSchema = new Schema(
{
deleterData: DeleterDataSchema,
user: UserSchema
},
{ collection: 'deletedUsers' }
)
const conn = mongoose.createConnection(Settings.mongo.url, {
server: { poolSize: Settings.mongo.poolSize || 10 },
config: { autoIndex: false }
})
const DeletedUser = conn.model('DeletedUser', DeletedUserSchema)
mongoose.model('DeletedUser', DeletedUserSchema)
exports.DeletedUser = DeletedUser
exports.DeletedUserSchema = DeletedUserSchema