export type NavItemType = {
  id: number;
  name: string;
  quoteType: -1 | 0 | 1 | 2; //-1没有选择任何类型 0-空节点 1-外部链接 2-应用
  quotelink: string; // 没有引用的时候是空字符串
  screenId: number; // 大屏 id
  openWay: 1 | 2; // 打开方式 1-当前页面 2-新建窗口
  level: 1 | 2 | 3 | 4; // 导航层级 1 2 3
  parentId: number; // 父级菜单 id   0 表示为没有父级菜单，自己就是根
  children: NavItemType[];
  rank: number; // 顺序 从1开始计数
  portalId: number; //驾驶舱ID
  createdAt: string;
  updatedAt: string;
};

export type ThumbColorType = {
  1: 'black';
  2: 'white';
};

// 驾驶舱详情
export type PortalType = {
  title: string; //工程名称
  id: number;
  name: string;
  cover: string; // 空字符串表示默认地址
  published: boolean; // 是否分享
  encryption: boolean; // 是否加密
  encryptionType: 1 | 2; //分享类型 1-密码 2-token
  shareUrl: string; // 分享地址
  sharePassword: string; // 分享密码
  shareToken: string;
  updateAt: Date | string;
  createdAt: Date | string;

  // 驾驶舱详情才有如下字段
  navBarLayout?: 0 | 1 | 2; // 导航位置 0-左侧 1-右侧 2-顶部 3-底部 (服务端预留了底部，前端约束0，1，2)
  thumbColor?: {
    id: keyof ThumbColorType; // id为1深色 2浅色
    name: ThumbColorType[keyof ThumbColorType];
  };
  navigation?: NavItemType[];
};

// 驾驶舱工作台List
export type PortalListType = Array<Omit<PortalType, 'navBarLayout' | 'thumbColor' | 'navigation'>>;
export type CurPortalBaseInfoType = Omit<PortalType, 'navigation'>;
export type CurPortalNavigationType = NavItemType[];

export type SpaceShipState = {
  editPageCurrentTab: '0' | '1'; //0 门户设置 1内容设置
  curPortalBaseInfo?: CurPortalBaseInfoType;
  curPortalNavigation?: CurPortalNavigationType;
  curSelectedKeys?: number;
  curExpandedNavKeys: string[];
  shareStatus?: -1 | -2 | 0 | 1; // -1 密码错误，-2token失效 1验证通过  0大屏未发布
};
