/**
 * Electron 主进程入口
 * 柔性敏捷智能测试体系平台
 */

import { app, BrowserWindow, ipcMain } from 'electron';
import * as path from 'path';

let mainWindow: BrowserWindow | null = null;

function createMainWindow(): void {
	mainWindow = new BrowserWindow({
		width: 1400,
		height: 900,
		minWidth: 1000,
		minHeight: 700,
		title: '柔性敏捷智能测试体系平台',
		frame: false, // 无边框窗口，自定义标题栏
		webPreferences: {
			preload: path.join(__dirname, '../preload/preload.js'),
			nodeIntegration: false,
			contextIsolation: true,
		},
	});

	// 开发模式加载 Vite 开发服务器
	if (process.env.NODE_ENV === 'development') {
		mainWindow.loadURL('http://localhost:5173');
		mainWindow.webContents.openDevTools();
	} else {
		// 生产模式加载构建后的文件
		mainWindow.loadFile(path.join(__dirname, '../renderer/index.html'));
	}

	mainWindow.on('closed', () => {
		mainWindow = null;
	});
}

// 窗口控制 IPC 处理
ipcMain.on('window-minimize', () => {
	mainWindow?.minimize();
});

ipcMain.on('window-maximize', () => {
	if (mainWindow?.isMaximized()) {
		mainWindow?.unmaximize();
	} else {
		mainWindow?.maximize();
	}
});

ipcMain.on('window-close', () => {
	mainWindow?.close();
});

ipcMain.handle('window-is-maximized', () => {
	return mainWindow?.isMaximized();
});

app.whenReady().then(() => {
	createMainWindow();

	app.on('activate', () => {
		if (BrowserWindow.getAllWindows().length === 0) {
			createMainWindow();
		}
	});
});

app.on('window-all-closed', () => {
	if (process.platform !== 'darwin') {
		app.quit();
	}
});
