// ============================================================
// 导航栏类型定义
// ============================================================

import type { Edition } from '@shared/types';

/** 导航项的行为类型 */
export type NavAction =
   | 'page' // 打开页面 Modal（携带 target 路径标识符，由事件总线分发）
   | 'drawer' // 侧拉抽屉（公告等）
   | 'button' // 纯按钮行为（退出登录等）
   | 'external'; // 外部链接

/** 单个导航项配置 */
export interface NavItemConfig {
   /** 唯一标识 */
   key: string;
   /** 显示文字 */
   label: string;
   /** SVG 图标资源路径（Vite import 后的 URL） */
   iconSrc?: string;
   /** 行为类型 */
   action: NavAction;
   /** 点击回调 / 路由路径 / 外部 URL（取决于 action） */
   target?: string;
   /** 窗口类型（仅 action='page' 时生效）：modal 居中模态 | drawer 侧滑 | floating 非模态浮动面板 */
   modalType?: 'modal' | 'drawer' | 'floating';
   /** 仅在指定版本下显示 */
   edition?: Edition | Edition[];
   /** 仅已登录时显示 */
   requireLogin?: boolean;
   /** 仅未登录时显示 */
   requireGuest?: boolean;
   /** 排列位置 */
   position: 'left' | 'right';
}

/** 导航栏配置（按版本分组） */
export interface NavBarConfig {
   left: NavItemConfig[];
   right: NavItemConfig[];
}
