/**
 * 工作流扩展字段配置
 */

import type { ComponentMeta } from '../../config';
import { UserOutlined } from '@ant-design/icons';
import { ApproverPropertyConfig } from './ApproverPropertyConfig';
import { ApproverSelector } from './ApproverSelector';

/**
 * 工作流扩展组件列表
 * 通过 extraComponents 注入到 FormDesigner
 */
export const WORKFLOW_COMPONENTS: ComponentMeta[] = [
  {
    type: 'approver-selector',
    label: '审批人',
    icon: UserOutlined,
    category: '高级字段',
    
    // 🔌 插件式扩展：自定义属性配置组件
    PropertyConfigComponent: ApproverPropertyConfig,
    
    // 🔌 插件式扩展：自定义字段渲染组件
    FieldRendererComponent: ApproverSelector,
    
    // 默认配置
    defaultConfig: {
      // id 和 type 由 Designer 自动生成，不在这里定义
      // label 和 name 也由 Designer 生成，这里只定义审批相关的配置
      required: true,
      // 审批配置
      approvalMode: 'SINGLE',      // SINGLE | ALL | ANY
      approverType: 'USER',        // USER | ROLE | DEPARTMENT | VARIABLE
      // 审批界面
      approvalTitle: '请审批',
      approvalContent: '',
      // 高级设置
      timeoutDuration: 0,          // 超时时间（小时），0表示不限制
      timeoutAction: 'NONE',       // NONE | AUTO_APPROVE | AUTO_REJECT | NOTIFY
      allowDelegate: false,        // 允许转交
      allowAddSign: false,         // 允许加签
      requireComment: false,       // 必须填写意见
    },
  },
];

