
import mongoose, { Schema, Document } from 'mongoose';

export interface ISystemSettingsDocument extends Document {
    systemName: string;
    logoUrl: string;
    maintenanceMode: boolean;
    smtp: {
        host: string;
        port: number;
        user: string;
        pass: string;
        secure: boolean;
        senderEmail: string;
    };
    retentionPolicy: {
        logDays: number;
        reportDays: number;
    };
    vcomApi?: {
        username: string;
        password: string;
        apiKey: string;
    };
}

const systemSettingsSchema = new Schema<ISystemSettingsDocument>(
    {
        systemName: { type: String, default: 'VPEG AM & O&M' },
        logoUrl: { type: String, default: '' },
        maintenanceMode: { type: Boolean, default: false },
        smtp: {
            host: { type: String, default: '' },
            port: { type: Number, default: 587 },
            user: { type: String, default: '' },
            pass: { type: String, default: '' },
            secure: { type: Boolean, default: false },
            senderEmail: { type: String, default: '' },
        },
        retentionPolicy: {
            logDays: { type: Number, default: 365 },
            reportDays: { type: Number, default: 90 },
        },
        vcomApi: {
            username: { type: String, default: '' },
            password: { type: String, default: '' },
            apiKey: { type: String, default: '' },
        },
    },
    { timestamps: true }
);

export const SystemSettings = mongoose.model<ISystemSettingsDocument>('SystemSettings', systemSettingsSchema);
