import type { DocumentRecord } from "@/lib/documents";
import type { KernelFileTreeProjection } from "@/lib/kernel-file-tree";
import type { WorkspaceSummary } from "@/lib/workspaces";
import type { MediaAsset } from "@/types/media";
import type { KernelSidebarProjection, SidebarTreeNode } from "@/lib/kernel-sidebar";

export type SidebarSectionId = "starred" | "public" | "shared" | "private" | "templates";

export interface TrashRecord {
  id: string;
  title: string | null;
  deleted_at: string;
  parent_id: string | null;
  access_scope: DocumentRecord["access_scope"];
}

export interface SidebarInitialData {
  activeWorkspaceId: string;
  workspaces: WorkspaceSummary[];
  documents: DocumentRecord[];
  kernelSidebarProjection: KernelSidebarProjection;
  kernelSidebarTree: SidebarTreeNode[];
  kernelFileTreeProjection: KernelFileTreeProjection;
  trashedDocuments: TrashRecord[];
  trashedMediaAssets?: MediaAsset[];
  trashedMindmapAssets?: MediaAsset[];
  trashedTableAssets?: MediaAsset[];
  /**
   * 在线表格（Luckysheet）在文件树中的“虚拟文件”列表。
   * 仅用于文件树展示与操作（单击跳转 index / 双击全屏打开 / 同步删除）。
   */
  tableAssets?: MediaAsset[];
  /**
   * 已存在思维导图文件（本地或 supabase）对应的页面 id 列表
   */
  mindmapDocs?: string[];
  /**
   * 思维导图文件列表（用于文件树显示，多导图时一页可有多个）
   */
  mindmapAssets?: MediaAsset[];
  /**
   * 思维导图（mindmapAssets）引用的图片附件：mindmapId -> media_asset ids
   * 用于在文件树中把“导图图片”显示在对应 mindmap 文件下一级。
   */
  mindmapAssetChildren?: Record<string, string[]>;
  /**
   * 可选的媒体资源列表（旧字段向后兼容）
   */
  mediaAssets?: MediaAsset[];
}
