import type { InjectionKey, ShallowRef } from 'vue' import type { Project } from './types' /** 由项目布局发布给应用侧栏的访问状态;不额外请求或持久化项目数据。 */ export interface ProjectAccess { projectId: string completed: boolean } /** 侧栏与项目布局共享同一份判定,初次读取和切换项目时默认锁定。 */ export const projectAccessKey: InjectionKey> = Symbol('project-access') /** 仅正式项目状态 completed 解锁下游;已有部分剧集或旧 checkpoint 不代表剧本完成。 */ export function isProjectComplete(project: Pick | null, projectId: string): boolean { return !!projectId && project?.id === projectId && project.status === 'completed' }