// src/bridge/featureBridge.js const { ipcMain } = require('electron'); const settingsService = require('../features/settings/settingsService'); const askService = require('../features/ask/askService'); module.exports = { // Renderer로부터의 요청을 수신 initialize() { // Ask 관련 핸들러 추가 ipcMain.handle('ask:sendMessage', async (event, userPrompt) => { return askService.sendMessage(userPrompt); }); // 기존 ask 핸들러 유지 ipcMain.handle('feature:ask', (e, query) => { // 실제로는 여기서 Controller -> Service 로직 수행 return `"${query}"에 대한 답변입니다.`; }); // settings 관련 핸들러 추가 ipcMain.handle('settings:getSettings', async () => { return await settingsService.getSettings(); }); ipcMain.handle('settings:saveSettings', async (event, settings) => { return await settingsService.saveSettings(settings); }); ipcMain.handle('settings:getPresets', async () => { return await settingsService.getPresets(); }); ipcMain.handle('settings:getPresetTemplates', async () => { return await settingsService.getPresetTemplates(); }); ipcMain.handle('settings:createPreset', async (event, title, prompt) => { return await settingsService.createPreset(title, prompt); }); ipcMain.handle('settings:updatePreset', async (event, id, title, prompt) => { return await settingsService.updatePreset(id, title, prompt); }); ipcMain.handle('settings:deletePreset', async (event, id) => { return await settingsService.deletePreset(id); }); ipcMain.handle('settings:saveApiKey', async (event, apiKey, provider) => { return await settingsService.saveApiKey(apiKey, provider); }); ipcMain.handle('settings:removeApiKey', async () => { return await settingsService.removeApiKey(); }); ipcMain.handle('settings:updateContentProtection', async (event, enabled) => { return await settingsService.updateContentProtection(enabled); }); ipcMain.handle('settings:get-auto-update', async () => { return await settingsService.getAutoUpdateSetting(); }); ipcMain.handle('settings:set-auto-update', async (event, isEnabled) => { console.log('[SettingsService] Setting auto update setting:', isEnabled); return await settingsService.setAutoUpdateSetting(isEnabled); }); console.log('[FeatureBridge] Initialized with ask and settings handlers.'); }, // Renderer로 상태를 전송 sendAskProgress(win, progress) { win.webContents.send('feature:ask:progress', progress); }, };