const { app, BrowserWindow, ipcMain } = require('electron'); const path = require('path'); // Mock plugin for Electron development const DailyNotification = { async configure(options) { console.log('Electron Configure called:', options); return Promise.resolve(); }, async scheduleDailyNotification(options) { console.log('Electron Schedule called:', options); return Promise.resolve(); }, async getDebugInfo() { return Promise.resolve({ status: 'Electron Mock Mode', configuration: { storage: 'mock', platform: 'electron', version: '1.0.0' }, recentErrors: [], performance: { overallScore: 95, memoryUsage: 15.2, cpuUsage: 1.2 } }); }, async getPerformanceMetrics() { return Promise.resolve({ overallScore: 95, databasePerformance: 100, memoryEfficiency: 95, batteryEfficiency: 100, objectPoolEfficiency: 100, totalDatabaseQueries: 0, averageMemoryUsage: 15.2, objectPoolHits: 0, backgroundCpuUsage: 0.5, totalNetworkRequests: 0, recommendations: ['Electron mock mode - no optimizations needed'] }); } }; // IPC handlers for Electron ipcMain.handle('configure-plugin', async (event, options) => { try { await DailyNotification.configure(options); return { success: true, message: 'Configuration successful' }; } catch (error) { return { success: false, error: error.message }; } }); ipcMain.handle('schedule-notification', async (event, options) => { try { await DailyNotification.scheduleDailyNotification(options); return { success: true, message: 'Notification scheduled' }; } catch (error) { return { success: false, error: error.message }; } }); ipcMain.handle('get-debug-info', async () => { try { const info = await DailyNotification.getDebugInfo(); return { success: true, data: info }; } catch (error) { return { success: false, error: error.message }; } }); ipcMain.handle('get-performance-metrics', async () => { try { const metrics = await DailyNotification.getPerformanceMetrics(); return { success: true, data: metrics }; } catch (error) { return { success: false, error: error.message }; } }); function createWindow() { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: false, contextIsolation: true, preload: path.join(__dirname, 'preload.js') }, title: 'Daily Notification - Electron Test' }); // Load the web app mainWindow.loadFile('dist/index.html'); // Open DevTools in development if (process.argv.includes('--dev')) { mainWindow.webContents.openDevTools(); } } app.whenReady().then(createWindow); app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } });