// ============================================================
// IPC 通道名称常量 —— 避免魔法字符串
// ============================================================

/** 主进程 → 渲染进程 */
export const MAIN_TO_RENDERER = {
   /** 主进程消息推送 */
   MAIN_PROCESS_MESSAGE: 'main-process-message',
   /** 主题变更通知 */
   THEME_CHANGED: 'theme-changed',
   /** 窗口聚焦通知 */
   WINDOW_FOCUSED: 'window-focused',
   /** 窗口失焦通知 */
   WINDOW_BLURRED: 'window-blurred',
   /** 画布窗口准备就绪 */
   CANVAS_READY: 'canvas:ready',
   /** 画布扫描进度 */
   CANVAS_SCAN_PROGRESS: 'canvas:scan-progress',
} as const;

/** 渲染进程 → 主进程 */
export const RENDERER_TO_MAIN = {
   /** 打开子窗口 */
   OPEN_SUB_WINDOW: 'open-sub-window',
   /** 关闭子窗口 */
   CLOSE_SUB_WINDOW: 'close-sub-window',
   /** 设置窗口标题 */
   SET_WINDOW_TITLE: 'set-window-title',
   /** 获取平台信息 */
   GET_PLATFORM_INFO: 'get-platform-info',
   /** 最小化窗口 */
   MINIMIZE_WINDOW: 'minimize-window',
   /** 最大化/还原窗口 */
   TOGGLE_MAXIMIZE: 'toggle-maximize',
   /** 关闭窗口 */
   CLOSE_WINDOW: 'close-window',
   /** 渲染进程日志上报 */
   LOG_MESSAGE: 'log-message',
   /** 画布：打开无限画布窗口 */
   OPEN_CANVAS_WINDOW: 'canvas:open-window',
} as const;

/** 双向通信通道 */
export const BIDIRECTIONAL = {
   /** 读取应用配置 */
   READ_CONFIG: 'read-config',
   /** 写入应用配置 */
   WRITE_CONFIG: 'write-config',
   /** 文件对话框 */
   FILE_DIALOG: 'file-dialog',
   /** safeStorage 加密（明文 → Base64 密文） */
   SAFESTORAGE_ENCRYPT: 'safe-storage:encrypt',
   /** safeStorage 解密（Base64 密文 → 明文） */
   SAFESTORAGE_DECRYPT: 'safe-storage:decrypt',
   /** 文件写入（Blob Buffer → 磁盘） */
   FILE_WRITE: 'storage:file-write',
   /** 文件读取（磁盘 → Base64） */
   FILE_READ: 'storage:file-read',
   /** 文件删除 */
   FILE_DELETE: 'storage:file-delete',
   /** 创建目录（递归） */
   MAKE_DIR: 'storage:make-dir',
   /** 在文件管理器中显示文件 */
   SHOW_ITEM_IN_FOLDER: 'storage:show-item-in-folder',
   /** 获取应用数据目录路径 */
   GET_DATA_DIR: 'storage:get-data-dir',
   /** 获取文件大小 */
   FILE_SIZE: 'storage:file-size',
   /** 文件/目录是否存在 */
   FILE_EXISTS: 'storage:file-exists',
   /** 画布：扫描目录 */
   CANVAS_SCAN_DIRECTORY: 'canvas:scan-directory',
   /** 画布：扫描项目（接收 projectPath，主进程内部完成 buildScanRoots + walkDirectory） */
   CANVAS_SCAN_PROJECT: 'canvas:scan-project',
   /** 画布：读取 sidecar 元数据 */
   CANVAS_READ_SIDECAR: 'canvas:read-sidecar',
   /** 画布：写入 sidecar 元数据 */
   CANVAS_WRITE_SIDECAR: 'canvas:write-sidecar',
   /** 画布：生成缩略图 */
   CANVAS_GENERATE_THUMBNAIL: 'canvas:generate-thumbnail',
   /** 画布：复制文件（导入） */
   CANVAS_COPY_FILE: 'canvas:copy-file',
   /** 画布：获取原生图片尺寸 */
   CANVAS_GET_IMAGE_SIZE: 'canvas:get-image-size',
   /** 画布：列出目录下的子文件夹（非递归，排除隐藏） */
   CANVAS_LIST_SUBDIRS: 'canvas:list-subdirs',
   /** 画布：扫描阶段文件（单个 episode/shot/stage 组合） */
   CANVAS_SCAN_STAGE_FILES: 'canvas:scan-stage-files',
   /** 画布：扫描资产文件（深度递归扫描 assets/ 目录） */
   CANVAS_SCAN_ASSET_FILES: 'canvas:scan-asset-files',
   /** 画布：创建目录 */
   CANVAS_CREATE_DIRECTORY: 'canvas:create-directory',
   /** 画布：启动原生文件拖拽（拖放媒体文件到外部应用） */
   CANVAS_START_DRAG: 'canvas:start-drag',
} as const;
