Implement authentication, waitlist, and logging upgrades

This commit is contained in:
Remi
2025-09-16 17:28:52 +02:00
parent e155434b57
commit 147761311d
29 changed files with 1847 additions and 64 deletions

View File

@@ -0,0 +1,26 @@
import mongoose from 'mongoose'
const { Schema } = mongoose
export interface InvitationCodeDocument extends mongoose.Document {
code: string
createdBy: mongoose.Types.ObjectId
createdAt: Date
expiresAt?: Date
usedBy?: mongoose.Types.ObjectId
usedAt?: Date
}
const invitationSchema = new mongoose.Schema<InvitationCodeDocument>({
code: { type: String, required: true, unique: true, uppercase: true, trim: true },
createdBy: { type: Schema.Types.ObjectId, ref: 'User', required: true },
createdAt: { type: Date, default: () => new Date() },
expiresAt: { type: Date },
usedBy: { type: Schema.Types.ObjectId, ref: 'User' },
usedAt: { type: Date },
})
export const InvitationCode =
(mongoose.models.InvitationCode as mongoose.Model<InvitationCodeDocument> | undefined) ||
mongoose.model<InvitationCodeDocument>('InvitationCode', invitationSchema)