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( { 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('SystemSettings', SystemSettingsSchema)