/**
 * LangGraph 书籍生成 - 参考类型定义
 *
 * 注意：当前 GraphState 定义在 graph.ts 中（使用 Annotation API），
 * 此文件仅作为类型参考保留，实际运行时不依赖此文件。
 */

import { Book, BookOutline, Chapter } from './book-generator.types';

// 书籍规模（与 book-type-config.ts 黄金数系统对齐）
export type BookScale =
  | '1000' | '2000' | '3000' | '4000' | '7000'
  | '12000' | '19000' | '31000' | '50000' | '80000'
  | '130000' | '210000' | '340000';

// LangGraph 状态（参考定义，实际见 graph.ts）
export interface BookGenerationState {
  // 输入
  bookId: string;
  topic: string;
  bookScale: BookScale;
  description?: string;

  // 规划阶段
  outline?: BookOutline;
  outlineError?: string;

  // 章节阶段
  currentChapter: number;
  chapters: ChapterResult[];
  failedChapters: number[];

  // 补充阶段
  foreword?: string;
  afterword?: string;

  // 完成标志
  finished: boolean;
  error?: string;

  // 进度
  progress: number;
}

export interface ChapterResult {
  number: number;
  title: string;
  content?: string;
  wordCount: number;
  status: 'pending' | 'completed' | 'failed';
  error?: string;
}
