import color from "picocolors";
import { createStepUI } from "../../utils/stepui.js";
import { title, getSteps } from "./config.js";
import { stopKeypress, waitForKey } from "../../keyboard.js";
import { runGltfExtension } from "./service.js";

const run = async () => {
  const ui = createStepUI({ title, getSteps });
  const result = await ui.runInteractive();
  if (!result) return "back";

  stopKeypress();

  const config = {
    files: result.results[0] || [],
    extensions: result.results[1] || []
  };

  ui.showSummary([
    "处理文件: " + (config.files.length ? config.files.join(", ") : "未选择"),
    "扩展选项: " + (config.extensions.length ? config.extensions.join(", ") : "未选择")
  ]);

  const { success, count, error } = runGltfExtension(config);
  if (error) {
    console.log(color.red("\n✖ " + error));
  } else if (success) {
    console.log(color.green("\n✓ 已修改 " + count + " 个 glTF 文件"));
  }

  await waitForKey();
  return "back";
};

export default {
  id: "gltf",
  name: "glTF扩展",
  desc: "添加KTX2纹理扩展",
  run,
};
