/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { SystemBehaviorSection } from '../general/system-behavior-section' import { EmailSettingsSection } from '../integrations/email-settings-section' import { MonitoringSettingsSection } from '../integrations/monitoring-settings-section' import { WorkerSettingsSection } from '../integrations/worker-settings-section' import { LogSettingsSection } from '../maintenance/log-settings-section' import { PerformanceSection } from '../maintenance/performance-section' import { UpdateCheckerSection } from '../maintenance/update-checker-section' import type { OperationsSettings } from '../types' import { createSectionRegistry } from '../utils/section-registry' const OPERATIONS_SECTIONS = [ { id: 'behavior', titleKey: 'System Behavior', build: (settings: OperationsSettings) => ( ), }, { id: 'monitoring', titleKey: 'Monitoring & Alerts', build: (settings: OperationsSettings) => ( ), }, { id: 'email', titleKey: 'SMTP Email', build: (settings: OperationsSettings) => ( ), }, { id: 'worker', titleKey: 'Worker Proxy', build: (settings: OperationsSettings) => ( ), }, { id: 'logs', titleKey: 'Log Maintenance', build: (settings: OperationsSettings) => ( ), }, { id: 'performance', titleKey: 'Performance', build: (settings: OperationsSettings) => ( ), }, { id: 'update-checker', titleKey: 'System maintenance', build: ( _settings: OperationsSettings, currentVersion?: string | null, startTime?: number | null ) => ( ), }, ] as const export type OperationsSectionId = (typeof OPERATIONS_SECTIONS)[number]['id'] const operationsRegistry = createSectionRegistry< OperationsSectionId, OperationsSettings, [string | null | undefined, number | null | undefined] >({ sections: OPERATIONS_SECTIONS, defaultSection: 'behavior', basePath: '/system-settings/operations', urlStyle: 'path', }) export const OPERATIONS_SECTION_IDS = operationsRegistry.sectionIds export const OPERATIONS_DEFAULT_SECTION = operationsRegistry.defaultSection export const getOperationsSectionNavItems = operationsRegistry.getSectionNavItems export const getOperationsSectionContent = operationsRegistry.getSectionContent export const getOperationsSectionMeta = operationsRegistry.getSectionMeta