initial commit
This commit is contained in:
45
models/system-settings.ts
Normal file
45
models/system-settings.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import mongoose, { Schema, Document } from 'mongoose'
|
||||
|
||||
export interface ISystemSettings extends Document {
|
||||
maintenanceMode: boolean
|
||||
registrationEnabled: boolean
|
||||
emailVerificationRequired: boolean
|
||||
maxUserBalance: number
|
||||
defaultUserRole: 'user' | 'admin'
|
||||
systemMessage: string
|
||||
paymentGatewayEnabled: boolean
|
||||
developerHireEnabled: boolean
|
||||
vpsDeploymentEnabled: boolean
|
||||
kubernetesDeploymentEnabled: boolean
|
||||
vpnServiceEnabled: boolean
|
||||
lastUpdated: Date
|
||||
updatedBy: string
|
||||
}
|
||||
|
||||
const SystemSettingsSchema = new Schema<ISystemSettings>(
|
||||
{
|
||||
maintenanceMode: { type: Boolean, default: false },
|
||||
registrationEnabled: { type: Boolean, default: true },
|
||||
emailVerificationRequired: { type: Boolean, default: true },
|
||||
maxUserBalance: { type: Number, default: 1000000 },
|
||||
defaultUserRole: { type: String, enum: ['user', 'admin'], default: 'user' },
|
||||
systemMessage: { type: String, default: '' },
|
||||
paymentGatewayEnabled: { type: Boolean, default: true },
|
||||
developerHireEnabled: { type: Boolean, default: true },
|
||||
vpsDeploymentEnabled: { type: Boolean, default: true },
|
||||
kubernetesDeploymentEnabled: { type: Boolean, default: true },
|
||||
vpnServiceEnabled: { type: Boolean, default: true },
|
||||
lastUpdated: { type: Date, default: Date.now },
|
||||
updatedBy: { type: String, default: 'System' },
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
)
|
||||
|
||||
// Ensure only one settings document exists
|
||||
SystemSettingsSchema.index({}, { unique: true })
|
||||
|
||||
export const SystemSettings =
|
||||
mongoose.models.SystemSettings ||
|
||||
mongoose.model<ISystemSettings>('SystemSettings', SystemSettingsSchema)
|
||||
Reference in New Issue
Block a user