@ideal-photography/shared
Version:
Shared GraphQL (Apollo Server v5) and Mongoose logic for Ideal Photography PWAs: users, products, services, bookings, orders/cart, galleries, reviews, notifications, campaigns, settings, and audit logs.
24 lines (18 loc) • 762 B
JavaScript
import mongoose from 'mongoose';
const adminInviteSchema = new mongoose.Schema({
code: {
type: String,
required: true,
unique: true,
index: true
},
createdBy: { type: mongoose.Schema.Types.ObjectId, ref: 'Admin', required: true },
role: { type: String, enum: ['admin', 'manager'], default: 'admin' },
permissions: [{ type: String }],
expiresAt: { type: Date, required: true },
used: { type: Boolean, default: false },
usedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'Admin' },
usedAt: { type: Date }
}, { timestamps: true });
adminInviteSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
export default mongoose.model('AdminInvite', adminInviteSchema);