mongoose = require 'mongoose'
Settings = require 'settings-sharelatex'


Schema = mongoose.Schema
ObjectId = Schema.ObjectId


EXPIRY_IN_SECONDS = 60 * 60 * 24 * 30

ExpiryDate = () ->
	timestamp = new Date()
	timestamp.setSeconds(timestamp.getSeconds() + EXPIRY_IN_SECONDS)
	return timestamp



ProjectInviteSchema = new Schema(
	{
		email:          String
		token:          String
		sendingUserId:  ObjectId
		projectId:      ObjectId
		privileges:     String
		createdAt:      {type: Date, default: Date.now}
		expires:        {type: Date, default: ExpiryDate, index: {expireAfterSeconds: 10}}
	},
	{
		collection: 'projectInvites'
	}
)

conn = mongoose.createConnection(Settings.mongo.url, {
	server: {poolSize: Settings.mongo.poolSize || 10},
	config: {autoIndex: false}
})

ProjectInvite = conn.model('ProjectInvite', ProjectInviteSchema)

mongoose.model 'ProjectInvite', ProjectInviteSchema
exports.ProjectInvite = ProjectInvite
exports.ProjectInviteSchema = ProjectInviteSchema
exports.EXPIRY_IN_SECONDS = EXPIRY_IN_SECONDS
