ai-wpa/models/system-settings.ts

46 lines
1.6 KiB
TypeScript

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)