const { COMPONENT_PARTS_MAP, VITEPRESS_SIDEBAR_CATEGORY } = require('../shared/constant');

exports.typeName = () => ({
  name: 'name',
  type: 'input',
  message: '(必填)请输入组件 name ,将用作目录及文件名:',
  validate: (value) => {
    if (value.trim() === '') {
      return '组件 name 是必填项!';
    }
    return true;
  }
});

exports.typeTitle = () => ({
  name: 'title',
  type: 'input',
  message: '(必填)请输入组件中文名称,将用作文档列表显示:',
  validate: (value) => {
    if (value.trim() === '') {
      return '组件名称是必填项!';
    }
    return true;
  }
});

exports.selectCategory = () => ({
  name: 'category',
  type: 'list',
  message: '(必填)请选择组件分类,将用作文档列表分类:',
  choices: VITEPRESS_SIDEBAR_CATEGORY,
  default: 0
});

exports.typeAliasName = () => ({
  name: 'alias',
  type: 'input',
  message: '(选填)请输入组件 name 别名,将用作组件别名被导出:'
});

exports.selectParts = () => ({
  name: 'parts',
  type: 'checkbox',
  message: '(必填)请选择包含部件,将自动生成部件文件:',
  choices: COMPONENT_PARTS_MAP,
  default: [],
  validate: (value) => {
    if (value.length === 0) {
      return '部件必须包含至少一项';
    }
    return true;
  }
});